/*******************************************************************************
 * Copyright (c) 2017-2022 Contributors to the Eclipse Foundation
 *
 * See the NOTICE file(s) distributed with this work for additional
 * information regarding copyright ownership.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License 2.0 which is available at
 * http://www.eclipse.org/legal/epl-2.0, or the Apache Software License 2.0
 * which is available at https://www.apache.org/licenses/LICENSE-2.0.
 *
 * SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
 *******************************************************************************/
import { InterfaceParameter } from '../../../model/parameters';
import { WineryComponent } from '../../../model/wineryComponent';
import { NodeOperation, PlanOperation, RelationshipOperation } from './targetInterface/operations';

export class InterfaceOperationApiData extends WineryComponent {
    inputParameters: InterfaceParameter[] = [];
    outputParameters: InterfaceParameter[] = [];
    nodeOperation: NodeOperation;
    relationshipOperation: RelationshipOperation;
    plan: PlanOperation;
}

export class InterfacesApiData {
    operations: InterfaceOperationApiData[] = [];
    name: string;
    id: string;
    text: string;

    constructor(name = '') {
        this.name = name;
    }
}

export class InheritedInterface {
    parentType: string;
    is_shown = false;
    interfaces: InterfacesApiData[] = [];
}
